package ejb.cbm.seguridad.session;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import oracle.jdbc.OracleTypes;

import org.springframework.stereotype.Service;

import ejb.cbm.commons.JdbcHelper;
import ejb.cbm.seguridad.bean.OficinaBean;
import ejb.cbm.seguridad.local.UtilSeguridadSessionLocal;

////@Stateless
@Service("utilSeguridadSessionLocal")
public class UtilSeguridadSession implements UtilSeguridadSessionLocal {
	
	/* (non-Javadoc)
	 * //@see cbm.seguridad.local.UtilSeguridadSessionLocal#obtenerOficinas(java.sql.Connection)
	 */
	public List<OficinaBean> obtenerOficinas(Connection con) throws SQLException{
		
		CallableStatement cs = null;
		ResultSet rs = null;
		OficinaBean oficina = null;
		List<OficinaBean> oficinas = new ArrayList<OficinaBean>();
		
		try{
			cs = con.prepareCall("call CONNEG.PQ_CONTINUIDAD.sp_obtener_oficinas(?)");
			cs.registerOutParameter(1,OracleTypes.CURSOR);
			
			cs.executeQuery();
			rs = (ResultSet)cs.getObject(1);
			
			while(rs.next()){
				oficina = new OficinaBean();

				oficina.setCodigooficina(rs.getString("CODIGOOFICINA"));
				oficina.setNombre(rs.getString("NOMBRE"));
				oficina.setDescripcion(rs.getString("DESCRIPCION"));
				
				oficinas.add(oficina);
			}

			
		}finally{
			JdbcHelper.close(null,cs,null,null,rs);
		}
		
		return oficinas;
	}
}
